﻿//TradeGrid.xaml.cs
//Copyright (c) 2013 StockSharp LLC, all rights reserved.
//This code module is part of StockSharp library.
//This code is licensed under the GNU GENERAL PUBLIC LICENSE Version 3.
//See the file License.txt for the license details.
//More info on: http://stocksharp.com

namespace StockSharp.Xaml
{
	using System;
	using System.Collections.Generic;
	using System.Linq;
	using System.Windows.Controls;

	using Ecng.Common;
	using Ecng.Xaml;

	using StockSharp.BusinessEntities;

	/// <summary>
	/// Визуальный контрол-таблица, отображающая сделки (коллекцию объектов класса <see cref="MyTrade"/>).
	/// </summary>
	public partial class TradeGrid
	{
		/// <summary>
		/// Создать объект класса <see cref="TradeGrid"/>.
		/// </summary>
		public TradeGrid()
		{
			Trades = new ThreadSafeObservableCollection<MyTrade>();
			InitializeComponent();
		}

		/// <summary>
		/// Коллекция сделок, которые необходимо отобразить.
		/// </summary>
		public IList<MyTrade> Trades { get; private set; }

		/// <summary>
		/// Происходит при новом выделении сделки.
		/// </summary>
		public event EventHandler<EventArgs> TradeSelected;

		/// <summary>
		/// Выбранная сделка.
		/// </summary>
		public MyTrade SelectedTrade
		{
			get
			{
				return SelectedTrades.FirstOrDefault();
			}
		}

		/// <summary>
		/// Выбранные сделки.
		/// </summary>
		public IEnumerable<MyTrade> SelectedTrades
		{
			get
			{
				return _trades.SelectedItems.Cast<MyTrade>();
			}
		}

		private void TradesSelectionChanged(object sender, SelectionChangedEventArgs e)
		{
			TradeSelected.SafeInvoke(this);
		}
	}
}